package com.vtest.quartz.mapper.vtest.report;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.vtest.quartz.domain.TDEntity;
import com.vtest.quartz.domain.vtest.report.CPPostErrorEntity;
import com.vtest.quartz.domain.vtest.report.HoldBinDataEntity;
import com.vtest.quartz.domain.vtest.report.HoldReasonEntity;
import com.vtest.quartz.domain.vtest.report.HoldSummaryEntity;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Repository
@DS("second")
public interface CommonReportMapper {

    /**
     * 获取CP过账报错报表信息
     */
    public List<CPPostErrorEntity> getCPPostErrorInfo();

    /**
     * 根据针卡ID 查询在MES上测试的片数
     */
    public List<Map<String, String>> findMESTestPCSRecentBYID(@Param("idList") List<String> idList);

    List<TDEntity> getTestRecordMES(@Param("idList") List<String> idList);

    /**
     * 默认：查询对应时间内的hold的批次
     * LotNum 不为空时，单独跑这个LotNum的数据
     */
    List<Map<String, String>> getHoldLotInfo(@Param("code") String code, @Param("LotNum") String LotNum);

    /**
     * FT Hold - HoldReason 报表
     */
    List<HoldReasonEntity> getHoldReasonInfoByLotNumAndFT(@Param("LotNum") String LotNum, @Param("FT") String FT);

    /**
     * 根据 LotNum、FT 查询良率卡控
     */
    List<Map<String, String>> getControlLimitByLotNumAndFT(@Param("LotNum") String LotNum, @Param("FT") String FT);

    /**
     * FT Hold - HoldSummary 报表
     */
    List<HoldSummaryEntity> getFTHoldSummaryInfo(@Param("LotNum") String LotNum, @Param("FT") String FT);

    /**
     * FT Hold - BinData 报表
     */
    List<HoldBinDataEntity> getFTHoldBinDataInfo(@Param("LotNum") String LotNum, @Param("FT") String FT);

    /**
     * FT Hold 报表 更新最后发送时间
     */
    int updateFTHoldFinalSendTime(@Param("code") String code, @Param("now") String now);

}
